[Other] Sitemap Parsing Error

前言

最近送sitemap到網站管理員總是出現Parsing Error,看了官方文件Build and submit a sitemap才發現原來是有些特殊字元沒處理到。

< > & ' "

文件上說得處理這五個符號。

escape

escape可以妥善的處理特殊符號,但對URL做escape會連:都做處理,因此在URL上不適用。

encodeURI

encodeURI不會對, / ? : @ & = + $ #這些做處理。

encodeURIComponent

encodeURIComponent連:/都做處理了,因此也不適用。

結果

既然如此就只能自己做處理了

1
encodeURI(url).replace(/&/,"%26").replace(/</,"%3C").replace(/>/,"%3E").replace(/'/,"%27").replace(/"/,"%22");